package koby99;

public class J16_OOP2 {

	// 메서드method
	// 클래스의 객체가 할 수 있는 행위를 정의
	// 메서드에는 선언부와 몸체가 있음
	
	// 접근제한자 반환유형 메서드이름 (인수 목록) {
	// 	메서드 몸체
	// }
	// 메서드 선언부는  반환유형, 메서드이름, 인수목록임
	// 메서든 선언부를 메서드 서멍이라고도 함
	
	// 특별한 메서드인 main은 프로그램의 진입점을 제공한다.
	// 일반적인 프로그램은 수 많은 클래스로 구성됨
	// 그 중 주가 되는 메서드가 하나 있어야 하는데
	// 그것이 바로 main 메서드임
	public static void main(String[] args) {
		
		Students taehee = new Students();
			taehee.kor = 89;
			taehee.eng = 80;
			taehee.mat = 99;
			taehee.showSungJuk();
			
	}

}

	// 학생 클래스
	class Students{
		int stdno;
		int kor;
		int eng;
		int mat;
		
		
	//총점 구하기
	
	int computeTotal(){
		return kor + eng + mat;
		// 이 값을 다른 메서드에 넘겨 줄 수 있다.
		// 단, 메서드의 유형과 값의 결과 유형이 같아야 한다.
	}
	//평균 구하기
	float computeAvg(){
		return (float)this.computeTotal() / 3 ;
		//this. 는 자기 자신을 의미
	}
	//모든 결과 구하기
	void showSungJuk() {
		System.out.println( this.computeTotal());
		System.out.println( this.computeAvg());
		this.gac();
	}
	
	//학점 구하기
	void gac(){
		
		switch((int)computeAvg()/10){
		case 10:
		case 9:System.out.println("수");break;
		case 8:System.out.println("우");break;
		case 7:System.out.println("미");break;
		case 6:System.out.println("양");break;
		default:System.out.println("가");
			
		}
	// void 를 쓴다면 다른 쪽에서 사용이 불가하기 때문에 
	// 리턴을 사용하지 않을때 상용하면 된다.
	}
	
	}
	
		
			
		
		
		